﻿Imports Control.clases
Public Class Equipos
    Inherits System.Web.UI.Page

    Dim equipo As New clsEquipo
    Dim ubicacion As New clsUbicacionLugar
    Dim lugar As New clsUbicacionLugar
    Dim marca As New clsMarca
    Dim categoria As New clsCategoria
    Dim tipo As New clsTipoEquipo

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dtEquipo As Data.DataTable
        Dim dtAux As Data.DataTable
        If Not IsPostBack Then
            'Cargar Combos
            dtAux = ubicacion.listarUbicacion()
            With cmbUbicacion
                .DataSource = dtAux
                .DataValueField = "id_ubicacion"
                .DataTextField = "ubicacion_area"
                .DataBind()
            End With
            dtAux = lugar.listarLugar()
            With cmbLugar
                .DataSource = dtAux
                .DataValueField = "id_lugar"
                .DataTextField = "lugar_sede"
                .DataBind()
            End With
            dtAux = marca.listarMarca()
            With cmbMarca
                .DataSource = dtAux
                .DataValueField = "id_marca"
                .DataTextField = "marca_descripcion"
                .DataBind()
            End With
            dtAux = marca.listarMarca()
            With cmbMarca
                .DataSource = dtAux
                .DataValueField = "id_marca"
                .DataTextField = "marca_descripcion"
                .DataBind()
            End With
            dtAux = tipo.listarTipoEquipo()
            With cmbTipo
                .DataSource = dtAux
                .DataValueField = "id_tipo_pc"
                .DataTextField = "tipo_pc_descripcion"
                .DataBind()
            End With

            'Cargar Tabla
            dtEquipo = equipo.listarEquipoMantenimiento()
            GridView1.DataSource = dtEquipo
            GridView1.PageIndex = 0
            GridView1.DataBind()

        End If
    End Sub

    Protected Sub GridView1_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles GridView1.PageIndexChanging
        Dim dt As New Data.DataTable
        dt = equipo.listarEquipoMantenimiento()
        GridView1.DataSource = dt
        GridView1.PageIndex = e.NewPageIndex
        GridView1.DataBind()
        GridView1.SelectedIndex = 0
        Dim codigo As String = GridView1.Rows(0).Cells(1).Text
        cargarEquipo(codigo)
    End Sub

    Protected Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GridView1.RowCommand
        If e.CommandName = "Select" Then
            Dim i As Integer = Integer.Parse(e.CommandArgument.ToString())
            Dim codigo As String = GridView1.Rows(i).Cells(1).Text
            cargarEquipo(codigo)
            btnModificar.Enabled = True
        End If
    End Sub

    Private Sub cargarEquipo(ByVal codigo As String)
        Dim dt As New Data.DataTable
        dt = equipo.buscarEquipoMantenimiento(Integer.Parse(codigo))
        If dt.Rows.Count > 0 Then
            lblCodigoEquipo.Text = dt.Rows(0)("id_equipo").ToString()
            txtEquipoNombre.Text = dt.Rows(0)("equipo_nombre_pc").ToString()
            txtEquipoIP.Text = dt.Rows(0)("equipo_direccion_ip").ToString()
            txtEquipoResponsable.Text = dt.Rows(0)("equipo_responsable").ToString()
            txtEquipoMAC.Text = dt.Rows(0)("equipo_direccion_mac").ToString()
            txtEquipoObservacion.Text = dt.Rows(0)("equipo_observacion").ToString()
            txtEquipoLicencia.Text = dt.Rows(0)("equipo_licencia").ToString()
            txtEquipoCodInventario.Text = dt.Rows(0)("equipo_codigo_inventario").ToString()
            cmbUbicacion.SelectedValue = dt.Rows(0)("tb_ubicacion_id_ubicacion").ToString()
            cmbLugar.SelectedValue = dt.Rows(0)("tb_lugar_id_lugar").ToString()
            cmbTipo.SelectedValue = dt.Rows(0)("tb_tipo_pc_id_tipo_pc").ToString()
            cmbMarca.SelectedValue = dt.Rows(0)("tb_marca_id_marca").ToString()
        End If
    End Sub

    Private Sub ConfigForm(ByVal opt_menu As String, ByVal bloqueo As Boolean)
        txtEquipoCodInventario.Enabled = Not bloqueo
        txtEquipoIP.Enabled = Not bloqueo
        txtEquipoLicencia.Enabled = Not bloqueo
        txtEquipoMAC.Enabled = Not bloqueo
        txtEquipoNombre.Enabled = Not bloqueo
        txtEquipoObservacion.Enabled = Not bloqueo
        txtEquipoResponsable.Enabled = Not bloqueo
        cmbLugar.Enabled = Not bloqueo
        cmbMarca.Enabled = Not bloqueo
        cmbTipo.Enabled = Not bloqueo
        cmbUbicacion.Enabled = Not bloqueo

        btnNuevo.Enabled = bloqueo '//BOTON NUEVO
        btnModificar.Enabled = bloqueo '//BOTON MODIFICAR
        btnGrabar.Enabled = Not bloqueo '//BOTON GRABAR
        btnCancelar.Enabled = Not bloqueo '//BOTON CANCELAR
        btnEliminar.Enabled = bloqueo '//BOTON ELIMINAR
        btnGrabar.CommandArgument = opt_menu '//ARGUMENTO A BOTON GRABAR
    End Sub

    Private Sub CleanForm()
        txtEquipoCodInventario.Text = ""
        txtEquipoIP.Text = ""
        txtEquipoLicencia.Text = ""
        txtEquipoMAC.Text = ""
        txtEquipoNombre.Text = ""
        txtEquipoObservacion.Text = ""
        txtEquipoResponsable.Text = ""
        cmbLugar.SelectedIndex = 0
        cmbMarca.SelectedIndex = 0
        cmbTipo.SelectedIndex = 0
        cmbUbicacion.SelectedIndex = 0
    End Sub

    Protected Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles btnNuevo.Click
        ConfigForm("NEW", False)
        CleanForm()
        txtEquipoIP.Enabled = True
    End Sub

    Protected Sub btnGrabar_Click(sender As Object, e As EventArgs) Handles btnGrabar.Click
        Dim equipoNuevo As New clsEquipo()
        If btnGrabar.CommandArgument = "NEW" Then
            equipoNuevo.ingresarEquipoNuevo(txtEquipoNombre.Text, txtEquipoIP.Text, txtEquipoResponsable.Text, txtEquipoMAC.Text,
                                            txtEquipoCodInventario.Text, cmbMarca.SelectedValue, cmbTipo.SelectedValue, cmbUbicacion.SelectedValue,
                                            cmbLugar.SelectedValue, txtEquipoObservacion.Text, txtEquipoLicencia.Text)
        ElseIf btnGrabar.CommandArgument = "EDIT" Then
            equipoNuevo.actualizarEquipoMantenimiento(Integer.Parse(lblCodigoEquipo.Text), txtEquipoNombre.Text, txtEquipoIP.Text, txtEquipoResponsable.Text, txtEquipoMAC.Text,
                                            txtEquipoCodInventario.Text, cmbMarca.SelectedValue, cmbTipo.SelectedValue, cmbUbicacion.SelectedValue,
                                            cmbLugar.SelectedValue, txtEquipoObservacion.Text, txtEquipoLicencia.Text)
        End If
        ConfigForm("SELECT", True)
        Dim dt As Data.DataTable
        dt = equipoNuevo.listarEquipoMantenimiento()
        GridView1.DataSource = dt
        If btnGrabar.CommandArgument = "NEW" Then
            GridView1.DataBind()
            GridView1.PageIndex = GridView1.PageCount - 1
            GridView1.Rows(GridView1.Rows.Count - 1).RowState = DataControlRowState.Selected
            Dim codigo As String = GridView1.Rows(dt.Rows.Count - 1).Cells(1).Text
            cargarEquipo(codigo)
        ElseIf btnGrabar.CommandArgument = "EDIT" Then
            Dim i_fila As Integer = GridView1.SelectedRow.RowIndex
            GridView1.Rows(i_fila).RowState = DataControlRowState.Selected
            Dim codigo As String = GridView1.Rows(i_fila).Cells(1).Text
            cargarEquipo(codigo)
        End If
        GridView1.DataBind()
        txtEquipoIP.Enabled = False
    End Sub

    Protected Sub btnModificar_Click(sender As Object, e As EventArgs) Handles btnModificar.Click
        ConfigForm("EDIT", False)
        txtEquipoIP.Enabled = True
    End Sub

    Protected Sub btnEliminar_Click(sender As Object, e As EventArgs) Handles btnEliminar.Click
        Try
            If GridView1.Rows.Count > 0 Then
                Dim page_ind As Integer = 0
                Dim i_fila As Integer = GridView1.SelectedRow.RowIndex
                Dim codigo As String = GridView1.Rows(i_fila).Cells(1).Text

                equipo.eliminarEquipo(Integer.Parse(codigo))

                If GridView1.Rows.Count = 0 Or GridView1.PageCount = 0 Then
                    page_ind = 0
                Else
                    page_ind = GridView1.PageIndex
                End If

                Dim dt As Data.DataTable
                dt = equipo.listarEquipoMantenimiento()
                GridView1.DataSource = dt
                GridView1.PageIndex = page_ind
                GridView1.DataBind()
                CleanForm()
            End If
        Catch ex As Exception
            Throw New System.Exception(ex.Message, ex.InnerException)
        End Try
    End Sub

    Protected Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        Dim dt As Data.DataTable
        ConfigForm("SELECT", True)
        dt = equipo.listarEquipoMantenimiento()
        GridView1.DataSource = dt
        GridView1.DataBind()
        If dt.Rows.Count > 0 Then
        Else
            CleanForm()
        End If
        txtEquipoIP.Enabled = False
    End Sub
End Class